package com.df.bpm.utils.businessViewerV2.res;

import javax.swing.*;
import java.awt.event.MouseListener;
import java.util.List;

public interface V_fastTable<T> {

    /**
     * 声明table的列名称
     * @return  列名称列表
     */
    public abstract List<String> getColNames();

    /**
     * 隐藏列
     * @param iTable 要隐藏列的对象
     */
    public abstract void hideCol(JTable iTable);

    /**
     * 初始化JTable列宽
     * <P>数值1=1个字高</P>
     * @return 各列宽度
     */
    public abstract List<Integer> colWidthSetting();

    /**
     * 获取行数据
     * @param row   实体类的行
     * @return  行数据
     */
    public abstract  Object[] getRowValues(T row);

    /**
     * 获取空行实体类
     * @return  空行实体类
     */
    public abstract T getEmptyRow();

    /**
     * table的鼠标事件
     * @param iTable    要添加事件的table
     * @param list  table的数据行
     * @return  鼠标监听器
     */
    public abstract MouseListener mouseAdapter4Table(JTable iTable, List<T> list);
}
